// HashTable.cpp : This file contains the 'main' function. Program execution begins and ends there.
//

#include <iostream>
#include"HashTableOpenSite.h"
#include"HashTableLinkSite.h"
int main()
{
    //字符串 ASCII码 计算
    char a = 'a';   // 'a' 的 ASCII码 为 97
    printf("a 的 ASCII码 为 %d\n", a);
    printf("97 对应的字符为 %c\n", 97);
    printf("97 + 1 对应的字符为 %c\n\n", 97 + 1);

    char b = 98;
    printf("98 对应的字符为 %c\n\n", b);
    printf("=============================\n");

    HashOpen* hashOpen = InitHashTableOpenSite();
    HashLinearPut(hashOpen, 'a');   // 7
    HashLinearPut(hashOpen, 'c');   // 9
    HashLinearPut(hashOpen, 'e');   // 1
    HashLinearPut(hashOpen, 'g');   // 3
    HashLinearPut(hashOpen, 'i');   // 5
    HashLinearPut(hashOpen, 'k');   // (7) 线性探测, 得到 8
    HashLinearPut(hashOpen, 'm');   // (9) 线性探测, 得到 0
    HashLinearPut(hashOpen, 'n');   // (1) 线性探测, 得到 2
    HashLinearPut(hashOpen, 'y');   // (1) 线性探测, 得到 4

    printf("a 的位置在 %d\n", FindElement(hashOpen, 'a'));
    printf("b 的位置在 %d\n", FindElement(hashOpen, 'b'));
    printf("c 的位置在 %d\n", FindElement(hashOpen, 'c'));
    printf("m 的位置在 %d\n", FindElement(hashOpen, 'm'));
    printf("n 的位置在 %d\n", FindElement(hashOpen, 'n'));
    printf("y 的位置在 %d\n", FindElement(hashOpen, 'y'));
    printf("=============================\n");

    HashLink* hashLink = InitHashLink();
    HashLinkPut(hashLink, 'a');
    HashLinkPut(hashLink, 'c');
    HashLinkPut(hashLink, 'e');
    HashLinkPut(hashLink, 'g');
    HashLinkPut(hashLink, 'i');
    HashLinkPut(hashLink, 'k');
    HashLinkPut(hashLink, 'm');
    HashLinkPut(hashLink, 'n');
    HashLinkPut(hashLink, 'y');
    HashLinkPrint(hashLink);

    printf("a 的位置在 %d\n", FindElementHashLink(hashLink, 'a'));
    printf("b 的位置在 %d\n", FindElementHashLink(hashLink, 'b'));
    printf("c 的位置在 %d\n", FindElementHashLink(hashLink, 'c'));
    printf("m 的位置在 %d\n", FindElementHashLink(hashLink, 'm'));
    printf("n 的位置在 %d\n", FindElementHashLink(hashLink, 'n'));
    printf("y 的位置在 %d\n", FindElementHashLink(hashLink, 'y'));
}
